Optimization-based spring lattice deformation model for soft materials

ABSTRACT

Techniques for controlling a robotic picking arm using estimated seal quality metrics. A plurality of candidate contact points for holding an item using a suction device of the robotic picking arm, based on captured images of the item and an n-dimensional surface model of the item. An expected seal quality metric for a first one of the candidate contact points, by processing the n-dimensional surface model of the item and physical properties of the suction device of the robotic picking arm. Based on the expected seal quality metric, embodiments can determine whether to retrieve the item from the storage container by holding the item at the first candidate contact point using the suction device of the robotic picking arm.

BACKGROUND

The present description relates to robotic systems and, more specifically, to techniques for adaptively controlling industrial robotic systems through the use of a suction cup model.

Modern inventory systems, such as those in mail-order warehouses, supply chain distribution centers, and custom-order manufacturing facilities, face significant challenges in responding to requests for inventory items. As inventory systems grow, the challenges of simultaneously completing many packing, storing, and other inventory-related tasks become non-trivial. For instance, in product distribution centers (e.g., fulfillment centers), vast quantities of products are processed for shipment to consumers traditionally using mechanical handling equipment.

Even in highly automated product distribution environments, in many situations it is critical that any automated system operate at a very high rate of success. For example, a robotic arm that retrieves an item from a bin and places the item on a conveyer belt may be unacceptable for use in a product distribution center, if the robotic arm has a high rate of failing to retrieve the item or a significant likelihood of dropping the item on the way to the conveyer belt, as such failures could significantly delay the workflow of the distribution center.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates an inventory system having multiple regions and mobile drive units that carry inventory holders about the regions, according to one embodiment described herein.

FIG. 2 illustrates a robotic picking environment within a fulfillment center, according to one embodiment described herein.

FIG. 3 is a block diagram illustrating a robotic control optimization system, according to one embodiment described herein.

FIG. 4 is a block diagram illustrating a workflow for ranking candidate contact points on an item through the use of a suction cup model, according to one embodiment described herein.

FIG. 5 illustrates a portion of a three-dimensional spring lattice for use in determining a deformed three-dimensional shape, according to one embodiment described herein.

FIG. 6 illustrates a deformed three-dimensional shape of a suction cup device in contact with an item surface, according to one embodiment described herein.

FIG. 7 is a flow diagram deformed three-dimensional shapes of a suction cup device in contact with a malleable item surface, according to one embodiment described herein.

FIG. 8 is an illustration of a simulation for calculating an estimated seal quality metric between a suction cup and an item, according to one embodiment described herein.

FIG. 9 is a graph illustrating a relationship between static pressure and leak pathway surface air for a seal between a suction device and an item, according to one embodiment described herein.

FIG. 10 illustrates a workflow for processing an item within a fulfillment center environment, according to one embodiment described herein.

FIG. 11 illustrates a workflow for generating an estimated seal quality metric for candidate contact points on an item within a fulfillment center, according to one embodiment described herein.

FIG. 12 illustrates a workflow for controlling a robotic picking arm to retrieve an item by holding the item at a selected contact point, according to one embodiment described herein.

FIG. 13 is a flow diagram illustrating a method for determining an expected seal quality metric for holding an item at a candidate contact point using a suction device, according to one embodiment described herein.

FIG. 14 is a flow diagram illustrating a method for controlling movement of a robotic picking arm to retrieve an item by holding the item at a candidate contact point, according to one embodiment described herein.

FIG. 15 is a flow diagram illustrating a method for controlling movement of a robotic picking arm to retrieve an item at a selected candidate contact point, according to one embodiment described herein.

DETAILED DESCRIPTION

Inventory systems are utilized by many entities for storing and managing inventory. For example, some retailers may utilize a warehouse of racks that store inventory items in various bins. When an order for a specific inventory item needs to be filled by the retailer, the inventory item is retrieved from the bin where the inventory item is stored.

Inventory systems according to one embodiment described herein utilize one or more mobile drive units to automatically retrieve inventory holders from warehouse storage. The inventory holders may be entire racks of shelves, with each shelf having bins for various inventory items. Mobile drive units may be self-powered robotic devices configured to move freely about the warehouse. Racks may be transported by mobile drive units to a pick station for performing inventory operations. The station may include automated equipment to remove desired inventory items from the inventory holders and complete orders. In some operations, the items are removed from inventory holders and placed on order holders, which too can be maneuvered by the mobile drive units. Throughout this document, reference is made to inventory holders as the racks that are moved about by the mobile drive units. It is noted that inventory holders is used in the general sense as structures that hold inventory items, items that are part of an order, packaging elements for the orders, and essentially any other item or element that might be used by the inventory and fulfillment system. As such, inventory holders may also be referred to as holders, order holders, container holders, bins, and so forth.

Mobile drive units may move about the warehouse and/or retrieve inventory holders in response to commands and/or instructions received from an automated guidance system. For example, the mobile drive units could continuously move the inventory holders into and out from the pick stations to place the appropriate items near the pickers at the right time. (“Pickers” include autonomous operators that retrieve items from the inventory holders.)

Automation is particularly challenging to implement in a product distribution center, which frequently process products of dramatically different shapes and sizes. As such, while a robotic tool can be trained to reliably perform a particular action for a particular size and shape of object relatively easily, it is significantly more challenging to implement a robotic tool that can reliably perform the particular action for objects of various shapes and sizes. For example, depending on an object's shape and size, factors such as how to pick-up the object (e.g., with a single suction device, with multiple suction devices, with a robotic claw that grasps the object, etc.), where to pick-up the object (e.g., in the middle of a dense, flat surface with a suction device, as opposed to on a non-rigid surface through which air can easily pass), and so on. As a result, training an automated system to operate in such an environment can be a very difficult task.

Generally, robotic picking devices may be configured with several different end effectors for use in performing picking operations, and may be configured with control logic that is capable of using each end effector in multiple different ways when attempting to pick up an item. For example, a robotic picking arm could be configured with a suction device end effector, and the control logic for the robotic picking arm could determine a plurality of different candidate contact points that are available on a particular item to be picked up using the suction device end effector. The control logic could then select one of the candidate contact points and could attempt to lift the item by creating a suction seal with the item using the suction device end effector. In the event that the picking operation fails (e.g., the robotic picking arm fails to lift the item, the robotic picking arm drops the item en route to the item's destination, etc.), the control logic could then select a different candidate contact point and attempt to lift the item again using the suction device end effector. The control logic could also change other parameters, such as the speed at which the robotic picking arm moves once the item has been lifted using the suction device end effector, and can even attempt to lift the item using other end effectors (e.g., a robotic claw that grasps the item).

While such a process may eventually produce a successful result (i.e., the robotic picking arm may eventually lift the item and transport the item to its intended destination), such an iterative process can consume a significant amount of time and in rare instances may damage the item (e.g., if a fragile item is dropped during transit). As many fulfillment centers operate at a rapid pace, the delays introduced by repeatedly attempting to pick up an item using different contact points and different end effectors can be problematic. However, conventional solutions do not provide an adequate way to determine which contact point on the item is optimal for a given picking operation.

As such, embodiments herein provide techniques for controlling a robotic picking arm with a suction device end effector to lift an item at a determined contact point. For example, embodiments can determine a plurality of candidate contact points for holding a first item using the suction device of the robotic picking arm, based on an estimated surface geometry of the first item. In one embodiment, the estimated surface geometry of the item can be determined by capturing one or more images of the item using one or more camera devices and using these images, together with positional information and a three-dimensional model of the item, to determine the item's estimated surface geometry. Of note, while some embodiments are described herein with reference to three-dimensional models, such examples are provided for illustrative purposes only and without limitation. More generally n-dimensional models (e.g., where n is greater than 2) can be used, consistent with the functionality described herein.

Embodiments can then calculate, for each of the plurality of candidate contact points, a respective seal quality metric, based on a predicted deformed three-dimensional shape of the suction device and a three-dimensional shape associated with the candidate contact point on the first item. For example, embodiments could determine the predicted deformed three-dimensional shape of the suction device by generating a three-dimensional spring lattice based on attributes of the suction device and by determining a three-dimensional shape of the spring lattice that minimizes a measure of potential energy within the spring lattice. Embodiments can then use the resulting three-dimensional shape to calculating an estimated seal quality metric for the seal between the suction device and the item at the candidate contact point.

Embodiments can select one of the plurality of candidate contact points, based on the calculated seal quality metrics (e.g., the candidate contact point having the strongest estimated seal). Embodiments could then control movement of the robotic picking arm to retrieve the first item by holding the first item at the selected candidate contact point. Advantageously, by evaluating the estimated seal quality metrics for the candidate contact points before attempting to lift the item using the robotic picking arm, embodiments can boost the effectiveness of the robotic picking arm and can also improve the robotic picking arm's efficiency by reducing failed picking attempts.

FIG. 1 illustrates an inventory system having multiple regions and mobile drive units that carry inventory holders about the regions. The inventory system 100 may be arranged in a facility or warehouse (e.g., distribution facility, fulfillment center, etc.) that is logically organized into areas or regions associated with various functions. In the illustrated example, the warehouse includes a storage region 102, a pick station 104, and an inventory pier 106. In practice, depending upon the size of the inventory system 100, the warehouse may hold more than one of the storage regions 102, pick stations 104, and inventory piers 106, or the warehouse may be configured without the storage region 102, or the pick station 104, or the inventory pier 106.

The inventory system 100 includes a management module 110, multiple mobile drive units 112, inventory holders 114 and a training system 150. Only some of the inventory holders 114 are shown referenced with the number 114 for ease of illustration. The mobile drive units 112 are independent, self-powered robotic devices that may move freely about the warehouse, under their own direction or through coordination by the management module 110. The mobile drive units 112 may be used at various times to transport the inventory holders 114 around the warehouse among the regions. For instance, the mobile drive units 112 may transport the inventory holders 114 between the storage region 102 and the pick station 104 or inventory pier 106.

Each inventory holder 114 may be implemented as a physical structure to hold various inventory items. The inventory holder 114 has a physical length, width, and height that may be standardized or varied within the inventory system. As used herein, the inventory holders 114 may be configured to hold essentially any type or size of item or be used for any number of purposes, including, but not limited to, carrying pallets, storing shipping supplies, holding garbage, supporting empty boxes waiting for inventory, supporting filled boxes with items once orders are fulfilled, and so on. Furthermore, as used herein, inventory holders also include holders for other types of products or items and hence include order holders.

In one implementation, the inventory holder 114 may be formed as a rack having multiple shelves to support various types of inventory items. For instance, the inventory holders 114 may include multiple storage bins with each storage bin capable of holding a different type of inventory item. The inventory holders 114 are capable of being carried, rolled, or otherwise moved by the mobile drive units 112. Each inventory holder 114 may have a plurality of faces, and each bin may be accessible through specific faces. The rack is free-standing when at rest, but can be lifted and moved by the mobile drive units 112. The mobile drive units 112 may be configured to rotate inventory holders 114 at appropriate times to present particular faces of inventory holders 114 and the associated bins to an operator or other components of inventory system 10. One example is described below in more detail with reference to FIG. 2.

One or more mobile drive units 112 are provided in the storage region 102 to shuffle inventory holders 114 among the storage locations 120 and to transport the inventory holders between the storage region and other regions in the warehouse. Two loaded drive units 112(1) and 112(2) are shown in the storage area 102 carrying associated inventory holders 114(1) and 114(2), respectively, down aisles between the sets of predefined storage locations 120. An unloaded drive unit 112(3) is also shown moving through an aisle between the predefined storage locations 120.

The pick station region 104 is designed with multiple locations 122 and 124 to accommodate associated resting inventory holder 114. In FIG. 1, the pick station 104 has five locations arranged in two linear rows. A first line of three pick locations 122 is mapped next to a picking area in which a robotic picking arm 128 picks inventory from the inventory holders 114 at the pick locations 122 and loads them into boxes or containers supported by another inventory holder 114(4) mounted on a mobile drive unit 112(4). In one embodiment, the robotic picking arm 128 can be configured with one or more suction device end effectors for use in picking up items from the inventory holders 114. A second line of two staging locations 124 is mapped adjacent to, but spaced from, the first line of pick locations 122. The staging locations 124 temporarily hold inventory holders 114 on the way to and from the pick locations 122 of the pick station 104. It is noted that five locations are merely representative, and that pick stations 104 may be designed with more or fewer than five locations.

Order holders may, for example, be racks of shelving that are configured to hold boxes or containers that will be used to fill orders for inventory items. Each box or container may be associated with a particular order. For instance, an order holder may store a cardboard box that is to be used for shipping an order for several ink cartridges and several reams of paper. Order holders with orders needing such items may visit positions along the inventory pier corresponding to inventory holders storing inventory items needed by the orders. Operators may remove items from the inventory holders and place them into appropriate boxes or containers in the order holder. If necessary, the order holder may then be taken to an inventory station to fill items remaining on the orders in the boxes or containers of the order holder.

To illustrate, in the office supply example discussed above, paper may be a high volume inventory item and ink cartridges may be a highly popular item. Accordingly, a pallet of paper and an inventory holder storing various ink cartridges may be stationed at the inventory pier. An order for several packages of paper and an ink cartridge may be filled by moving an order holder a location along the inventory pier opposite to the pallet storing the paper where an operator may transfer the paper to the order holder. The order holder may then move to a location opposite the inventory holder storing the ink cartridges where the same or a different operator may transfer the ink cartridge to the order holder. If the requested printer is not already stored at the inventory pier, a mobile drive unit may transport the order holder to an inventory station, where another mobile drive unit may transport an inventory holder containing the printer so that the order can be filled.

In FIG. 1, the inventory pier 106 is shown with multiple designated pier locations 130 to accommodate the inventory holders 114. Five pier locations 130 are illustrated to accommodate five corresponding holders 114, although there may be more or fewer pier locations per inventory pier 106. One mobile drive unit 112(6) is shown at the inventory pier 106 to shuffle inventory holders 114 among the locations 130 according to the techniques described herein. Two loaded mobile drive units 112(7) and 112(8) are shown at rest next to a pier 132 and holding associated inventory holders 114(7) and 114(8) (or more specifically in this case, order holders) for access by a picker 134 (again, represented as a human although a mechanical device may be used). In this example, the inventory holders 114(7) and 114(7) may be holding packages or containers for order fulfillment, where the picker 134 removes selected items from the inventory holders 114 positioned in locations 130 and loads the items into order containers on the inventory holders 114(7) and 114(8).

In some implementations, multiple mobile drive units may be used to bring inventory holders to and from the pier locations 130 of the inventory pier 106. Incoming inventory holders may be placed in temporary locations while a single mobile drive unit, such as unit 112(6), removes an existing inventory holder that has been recently picked by the picker 134 from a pier location 130 and replaces it with a new inventory holder with new items of interest for the picker 134.

In one implementation, the management module 110 orchestrates movement of the mobile drive units 112, directing them to various regions within the warehouse. The management module 110 coordinates transport of the various inventory holders among the regions in the warehouse. Furthermore, the management module 110 may be used to instruct the mobile drive units to perform the shuffle processes within a particular region (e.g., storage region 102, pick station 104, inventory pier 106, etc.). Generally, the shuffle process involves directing a mobile drive unit 112 to reposition a first inventory holder from its current location within the region to a temporary location within the region that is adjacent or proximal to the current location. The mobile drive unit 112 leaves the first inventory holder in the temporary location and subsequently positions a second inventory holder into the location vacated by the first inventory holder. The mobile drive unit 112 then lifts the first inventory unit to transport the first inventory holder away.

The management module 110 may use any form of communication to direct the mobile drive units. In one implementation, the management module 110 and the mobile drive units are configured to communicate using wireless technologies, such as a wireless local area network (WLAN). As one example, some embodiments of mobile drive unit 112 may communicate with management module 110 and/or with one another using Wi-fi (IEEE 802.11), Bluetooth (IEEE 802.15), infrared Data Association standards, or any other appropriate wireless communication protocol. As another example, in a tracked inventory system 100, tracks or other guidance element upon which mobile drive units 112 move may be wired to facilitate communication between mobile drive units 112 and the management module 110 and/or other components of inventory system 100.

In addition to directing the mobile drive units, the management module 110 may receive and/or generate requests to initiate any of a number of particular operations involving the mobile drive units 112, inventory holders 114, or other elements of inventory system 100. The management module 110 may select components of inventory system 100 to perform various operations and communicate commands, instructions, and/or other appropriate information to the selected components to facilitate completion of these operations. The management module 110 may receive orders for various inventory items and coordinate and administer various appropriate tasks to fill the orders. For example, an order may specify particular inventory items that have been purchased by a customer and that are to be retrieved from inventory system 10 for shipment to the customer. The management module 110 may receive the orders from any appropriate system and generates task assignments based, in part, on the orders including requests for inventory items. Based on the orders, the management module 110 may identify particular operations to be completed involving inventory items stored or to be stored within inventory system 100.

After generating one or more task assignments, the management module 110 selects appropriate components to complete particular tasks and transmits task assignments to selected components, such as the mobile drive units, to trigger completion of the relevant tasks. The relevant components then execute their assigned tasks. Each task assignment defines one or more tasks to be completed by a particular component. These tasks may relate to the retrieval, storage, replenishment, and counting of inventory items and/or the management of mobile drive units 112, inventory holders 114, or other components of inventory system 100. Depending on the component and the task to be completed, a particular task assignment may identify locations, components, and/or actions associated with the corresponding task and/or any other appropriate information to be used by the relevant component in completing the assigned task. In one embodiment, the management module 110 is configured to control one or more robotic picking arms (e.g., at pick station 104) that retrieve specific items from a first location and place these items at a destination location.

In one embodiment, the robotic control optimization system 150 can capture one or more images of an item within a storage container to be retrieved using a robotic picking arm having a suction device. The robotic control optimization system 150 could then retrieve a three-dimensional surface model of the item, based on a unique identifier corresponding to the item. The robotic control optimization system 150 could determine a plurality of candidate contact points for holding the item using the suction device of the robotic picking arm, based on the captured one or more images of the item and the three-dimensional surface model of the item. For example, the robotic control optimization system 150 could determine a set of candidate contact points for the item and could determine which of those candidate contact points are currently accessible based on the item's pose and location within the storage container.

The robotic control optimization system 150 can determine an expected seal quality metric for a first one of the candidate contact points, by processing the three-dimensional surface model of the item and physical properties of the suction device of the robotic picking arm. For example, the robotic control optimization system 150 could model deformation and contact between the suction device and the first candidate contact point, using at least one three-dimensional spring-lattice to model deformation and contact between the suction device and the first candidate contact point on the item, such that potential energy across the three-dimensional spring-lattice is minimized. The robotic control optimization system 150 could then calculate the expected seal quality metric, using the three-dimensional spring-lattice and a fluids model (e.g., a model relating fluid force and leak geometry or leak pathways). Once the expected seal quality metric is calculated, the robotic control optimization system 150 could determine, based on the expected seal quality metric, whether to retrieve the item from the storage container by holding the item at the first candidate contact point using the suction device of the robotic picking arm.

FIG. 2 illustrates a robotic picking environment within a fulfillment center, according to one embodiment described herein. As shown, the environment 200 includes a robotic picking arm 210, stereo camera devices 220(1)-(A), light sources 230(1)-(B), and an item tote 240 that contains an item 250. The stereo camera devices 220(1)-(A) generally represent camera devices that are oriented so as to capture digital images of the item 250. These images can be used, for example, to validate that the item 250 is of the expected type and is actually present within the item tote 240, to determine where within the item tote 240 the item 250 is located, to determine the orientation of the item 250 within the item tote 240, and so on. Such information could then be used to control the robotic picking arm 210, so as to retrieve the item from the item tote 250 and to carry the item to a specified destination. In one embodiment the stereo camera devices 220(1)-(A) operate in the visible light spectrum. The light sources 230(1)-(B) are positioned so as to illuminate the item 250 within the item tote 240, in order to ensure the item 250 is clearly visible within the digital images captured by the stereo camera devices 220(1)-(A).

The robotic picking arm 210 is configured with a plurality of suction end effectors 215 and a robotic claw end effector 217. For example, as shown, the plurality of suction end effectors 215 include a single suction device and a multi-head suction device. Generally, control logic for the robotic picking arm 210 can switch between the suction end effectors 215 and the robotic claw end effector 217, depending on the type of the item 250. For example, while the robotic claw mechanism may be ideal for retrieving some types of items, other items may be too small or too large for retrieval using such a mechanism. As another example, while the suction devices may be ideal for retrieving some items (e.g., a lightweight item with a substantially impermeable surface), but other items may be difficult to reliably retrieve using such a mechanism (e.g., a heavier item with a highly permeable surface). As such, the control logic for robotic picking arm 210 can be configured to select an optimal end effector to retrieve the item 250, based on attributes of the item 250.

Although not shown, the environment 200 can be configured a plurality of sensor devices that can collect data on the proximate physical environment (e.g., measures of temperature, humidity, etc.) and the robotic picking arm 210 itself (e.g., measures of vibration, measures of temperature, etc.). Control logic for the robotic picking arm 210 could capture one or more images of the item 250 using the stereo camera devices 220(1)-(A). The control logic could then analyze these images to, e.g., verify that the item 250 is located within the item tote 240, identify a placement of the item 250 within the item tote 240, determine an orientation of the item 250 within the item tote 240, and so on. The control logic could then use such information to select an optimal picking mechanism 215 and to control the movement of the robotic picking arm 210 to retrieve the item 250.

Of note, while FIG. 2 illustrates an embodiment configured to capture images of an item being manipulated with the robotic picking arm 210 using stereo camera devices 220(1)-(N), more generally data on the appearance of the item can be captured using any number of different techniques and devices. For example, while in the depicted embodiment the stereo camera devices 220(1)-(N) could be used by a three-dimensional vision system to capture images of the item, in other embodiments time-of-flight cameras (e.g., cameras that measure the time-of-flight of a light signal between the camera and a surface of the item) could be used to generate data describing the physical appearance of the item. In various other embodiments, a Light Detection and Ranging (LIDAR) system, a structured lighting system (e.g., in conjunction with stereo cameras and a three-dimensional vision system), ultrasound arrays, x-ray imaging systems, millimeter wave scanners, and so on could be used to generate a three-dimensional model of the item (e.g., for determining the item's position and surface geometry, for use in controlling movement of the robotic picking arm 210). More generally, any systems capable of determining physical attributes of an item for use in controlling a robotic device can be used, consistent with the functionality described herein.

For example, the camera devices 220(1)-(A) could capture images of the item 250 within the storage container 240, e.g., while the light sources 230(1)-(B) are emitting light to provide optimal lighting conditions for capturing images of the item 250. The robotic control optimization system 150 could then retrieve a three-dimensional surface model of the item, based on a unique identifier corresponding to the item and could determine a plurality of candidate contact points for holding the item 250 using a suction end effector 215 of the robotic picking arm 210, based on the captured one or more images of the item and the three-dimensional surface model of the item.

The robotic control optimization system 150 could then evaluate one or more of the candidate contact points to determine their suitability for use in picking up the item 250 using the suction end effector 215. For example, the robotic control optimization system 150 could determine an expected seal quality metric for a first one of the candidate contact points, by processing the three-dimensional surface model of the item and physical properties of the suction device of the robotic picking arm. In doing so, the robotic control optimization system 150 could model deformation and contact between the suction device and the first candidate contact point, using at least one three-dimensional spring-lattice to model deformation and contact between the suction device and the first candidate contact point on the item, such that potential energy across the three-dimensional spring-lattice is minimized.

The robotic control optimization system 150 could further calculate the expected seal quality metric, using the three-dimensional spring-lattice and a fluids model. The robotic control optimization system 150 could then determine, based on the expected seal quality metric, whether to retrieve the item from the storage container by holding the item at the first candidate contact point using the suction end effector 215 of the robotic picking arm 210. Of note, while the depicted embodiment includes a suction end effector 215 mounted onto a robotic picking arm 210, such an example is provided for illustrative purposes only and without limitation. More generally, embodiments described herein can be used to evaluate the expected seal quality for any type of suction device or suction end effector.

FIG. 3 is a block diagram illustrating a robotic control optimization system, according to one embodiment described herein. As shown, the system 300 includes a model generation system 150, an object capture system 200, sensor devices 368, and a robotic arm controller 390 for controlling a robotic picking arm 210, all connected via network 365. The object capture system 200 includes stereo cameras 370, an image processing component 375, and light-emitting devices 380. Generally, the image processing component 375 processes digital images captured by the stereo cameras 370. For example, the image processing component 375 could perform a color balancing operation across all of the images of a particular item from the stereo cameras 370. As another example, the image processing component 375 may apply one or more filters to the images. More generally, the image processing component 375 can perform any suitable processing on the captured images, according to embodiment described herein. The robotic picking arm 210 includes a plurality of suction end effectors 215.

The robotic control optimization system 150 includes a processor 312, memory 314, storage 340, I/O devices 355, and a network interface 360. Processor 312 is intended to be representative of a single CPU, multiple CPUs, a single CPU having multiple processing cores, and the like. The memory 314 is included to be representative of a random access memory. As shown, memory 314 includes the robotic control optimization component 315 and an operating system 335. The robotic control optimization component 315 includes a robotic control component 320, a deformation modeling component 325 and a seal quality estimation component 330. Storage 340 includes item attribute data 345, three-dimensional item models 350 and suction device attribute data 353. The storage 340 may be a disk drive storage device. Although shown as a single unit, the storage 340 may be a combination of a fixed and/or removable storage, such as fixed disc drives, removable memory cards, optical storage, network attached storage (NAS), or storage-area-network (SAN). The network interface 360 may be any type of network communications allowing the robotic control optimization system 150 to communicate with other computers via a data communications network (e.g., network 365).

In one embodiment, the robotic control component 320 could receive instructions (e.g., from the management module 110) to retrieve a particular item from a specified location. The robotic control component 320 could retrieve a three-dimensional item model 350 corresponding to the particular item to be retrieved, and the robotic control component 320 could receive one or more captured one or more images of the retrieval location (e.g., a particular holder or tote within an automated product distribution center) from the object capture system 220.

In one embodiment, the robotic control component 320 is given instructions to take an item from a particular location, but is not given any identifying information for the item. In such an embodiment, the robotic control component 320 could instruct the object capture system 220 to capture images of the item in the particular location and the robotic control component 320 could determine which of the three-dimensional item models 350 best matches the appearance of the item in the captured images. The robotic control component 320 could then retrieve the three-dimensional item model 350 that best matches the item, for use in retrieving the item.

Once the three-dimensional item model 350 is retrieved, the robotic control component 320 can then use the three-dimensional item model 350 for one or more object identification operations. For instance, the robotic control component 320 could analyze images captured of the retrieval location and determine whether the particular item is present within the retrieval location. As an example, the robotic control component 320 could determine whether any portion of the captured image(s) substantially matches an appearance of the three-dimensional item model 350 for the particular item from any viewpoint and from various distances (e.g., a predefined range of distances). If the robotic control component 320 determines a portion of the image substantially matches an appearance of the three-dimensional item model 350 for the particular item, the robotic control component 320 determines that the particular item is present at the retrieval location at a location corresponding to the matching portion of the image.

Additionally, in one embodiment, the robotic control component 320 determines an estimated surface geometry of the particular item at the designated location, using the three-dimensional item model 350. For example, the robotic control component 320 could extrapolate the item's pose, based on calibration information specifying the relative three-space location of the camera capturing the image, as well as the viewpoint from which the three-dimensional item model 350 matched the portion of the captured image. The robotic control component 320 can then use the estimated pose of the particular item to determine the item's surface geometry and to further determine an optimal way to instruct the robotic arm controller 390 to control the robotic picking arm 392, in order to best retrieve the particular item. For example, the robotic control component 320 could determine an angle of approach, an optimal surface for grasping the particular item, and so on, based on the object's estimated pose as well as object profile information for the particular item. For example, the object profile information could specify an optimal surface upon which to grasp the particular item using a suction end effector of the robotic picking arm 392. The robotic control component 320 could determine a candidate contact point on the optimal surface, based on the particular item's current pose, and could instruct the robotic arm controller 390 to manipulate the robotic picking arm 392 to grasp the particular item by the optimal surface from a determined optimal angle.

In one embodiment, the robotic control component 320 determines an optimal manner to release a given object using a corresponding one of the three-dimensional item model 350. For example, once the robotic control component 320 has picked up the object in an optimal manner, the robotic control component 320 could determine an optimal manner to release the object in the specified destination location (e.g., within a tote container within an automated product distribution center). In doing so, the robotic control component 320 can retrieve an object profile for the object that specifies an optimal resting surface for the object (e.g., a flat surface of the object on which the object can rest in a stable manner). The robotic control component 320 could then determine how to orient the object so that the optimal surface is downward-facing, using the corresponding three-dimensional item model 350.

In one embodiment, the robotic control component 320 determines a plurality of candidate contact points for holding a first item using a suction device of a robotic picking arm, based on an estimated pose of the first item. For example, the robotic control component 320 could determine an optimal exposed surface of the item based on the item's pose and the object profile information, and the robotic control component 320 could determine a number of different candidate contact points on the surface geometry of the optimal exposed surface. For example, the robotic control component 320 could perform a real-time operation to acquire a point cloud (or depth map) describing the three-dimensional geometry of the item. That is, the robotic control component 320 could generate a three-dimensional surface representation corresponding to an exposed surface(s) of the item.

The robotic control optimization component 315 could then evaluate the different candidate contact points to determine whether any of the candidate contact points are acceptable for use in retrieving the item using a suction end effector and, if so, which of the candidate contact points is optimal for use in picking up the item using the suction end effector.

In doing so, the seal quality estimation component 330 could calculate, for each of the plurality of candidate contact points, a respective seal quality metric, based on a predicted deformed three-dimensional shape of the suction device generated by the deformation modeling component 325 and a three-dimensional shape associated with the candidate contact point on the first item. The robotic control component 320 could then select one of the plurality of candidate contact points, based on the calculated seal quality metrics. For example, the robotic control component 320 could determine a candidate contact point having the greatest seal quality metric (i.e., indicating the strongest seal) and could determine that the candidate contact point satisfies one or more predefined criteria (e.g., the seal quality metric for the candidate contact point exceeds a predefined threshold level of seal quality). The robotic control component 320 could then instruct the robotic arm controller 390 to control the movement of the robotic picking arm 210 to retrieve the item by holding the item at the selected candidate contact point. In one embodiment, if the robotic control component 320 determines that none of the candidate contact points satisfy the predefined criteria (e.g., none of the candidate contact points have an acceptable seal quality metric), the robotic control component 320 could facilitate the retrieval of the item through alternate methods. For example, the instruct the robotic arm controller 390 to retrieve the item using a robotic claw end effector picking mechanism, rather than a suction end effector 215. As another example, the robotic control component 320 could automatically route the item to a different area within the fulfillment center, where the item can be processed.

FIG. 4 is a block diagram illustrating a workflow for ranking candidate contact points on an item through the use of a suction cup model, according to one embodiment described herein. As shown, the workflow 400 begins at block 410, where the robotic control optimization component 315 retrieves a point cloud defining a three-dimensional shape of an item to be retrieved. Generally, the point cloud represents a set of data points in a coordinate system that collectively describe the three-dimensional shape of the item. For example, the point cloud could be generated automatically as part of new product intake procedures at the fulfillment system and stored within a database. In such an example, the robotic control optimization component 315 could then retrieve the point cloud from the database, by issuing a query specifying at least a unique identifier corresponding to the item to be retrieved.

The robotic control optimization component 315 then determines a number of candidate grasp points on the surface of the point cloud (block 420). For example, the robotic control optimization component 315 could determine that a particular surface(s) of the item is exposed, based on the item's surface geometry (e.g., determined by analyzing one or more images of the physical item), and the robotic control optimization component 315 could then select the candidate grasp points on the exposed surface(s) of the item. That is, the robotic control optimization component 315 could exclude from consideration any contact points that would not be adequately reachable using the suction end effector of the robotic picking arm, e.g., points on the surface on which the item is resting. The robotic control optimization component 315 could then generate a suction cup model (block 430) for use in evaluating the candidate contact points.

In the depicted example, the deformation modeling component 325 of the robotic control optimization component 315 generates a deformation and contact model that represents the surface of the suction end effector. For example, the deformation modeling component 325 could generate a spring lattice data model that represents the soft elastic material of the suction end effector using a number of simulated torsion and compression springs. Additionally, the deformation modeling component 325 could determine a shape of the spring lattice model that corresponds to a minimal energy pose of the spring lattice model. In other words, the deformation modeling component 325 could assume that there is a feasible, lower-energy state that the elastic material can assume, then the material is presumably not in its final resting state. Once the deformation modeling component 325 determines the three-dimensional shape of the spring lattice data model that minimizes the potential energy within the model, the deformation modeling component 325 can determine that the determined three-dimensional shape represents the deformed shape of the suction end effector when a seal is created. The seal quality estimation component 330 can then use the deformed shape to estimate a quality of the seal that would be formed between the suction end effector and the particular item in question.

As mentioned above, in one embodiment the soft elastic material is represented as a lattice of connected springs. Each connection point within the lattice can be represented as a node n, and a node can be indexed by the iterators i and j, representing the ordinal row and column position of the node within the lattice (i.e., n_(i,j)). For purposes of the following example, assume that x_(i,j) and y_(i,j) represent the continuous position of the indexed node. As such the state of the lattice X can be referred to as the assemblage of the continuous position of all the nodes into a single column vector, as shown below in Equation 1.

$\begin{matrix} {{{Lattice}\mspace{14mu}{State}}{{X = {\begin{bmatrix} x_{i,j} \\ y_{i,j} \end{bmatrix}{\forall i}}},j}} & {{Equation}\mspace{14mu} 1} \end{matrix}$

The deformation modeling component 325 could determine that a node is in a feasible position if the node does not lie within the boundary of the colliding object (e.g., the item being picked up using the suction end effector). That is, such a constraint can be imposed because the physical material of the suction device cannot penetrate the item being picked up. More specifically, this constraint may be represented as 0<|r_(i,j)|−|d_(i,j)|∀i,j, where d represents the Euclidean vector originating at the object's center and terminating at the indexed node, and r represents the effective radius originating from the object's center, collinear with d, and terminating at the object's boundary.

The robotic control optimization component 315 could then determine a shape of the spring lattice that minimizes the potential energy E stored within the lattice. More specifically, the deformation modeling component 325 could solve the following Equation 2, where E represents the summed potential energy of each deformed spring in the lattice.

$\begin{matrix} {{{Deformed}\mspace{14mu}{Lattice}\mspace{14mu}{State}}{X^{*} = {\min\limits_{X}E}}} & {{Equation}\mspace{14mu} 2} \end{matrix}$

FIG. 5 illustrates a portion of a three-dimensional spring lattice for use in determining a deformed three-dimensional shape, according to one embodiment described herein. As shown, the illustration 500 depicts a portion of a spring layout within the lattice, where horizontal k_(h) and vertical k_(v) linear springs connect each node. Additionally, torsional springs k_(t) store energy as the linear springs rotate about the nodes. Generally, the deformation modeling component 325 can adjust the stiffness values for each of these linear and torsional strings based on the suction device attribute data 353, e.g., data describing the malleability of the suction cup material. The lattice's total potential energy can be calculated for a given lattice state X, using the following procedure shown in Procedure 1.

$\begin{matrix} {E = 0.} & \; & \; \\ {for} & {i = {1\mspace{14mu}\ldots\mspace{14mu} I}} & \; \\ | & {for} & {j = {1\mspace{14mu}\ldots\mspace{14mu} J}} \\ | & | & {E = {E + {\frac{1}{2}{k_{v}\left( {\sqrt{\begin{matrix} {\left( {x_{i,j} - x_{{i - 1},j}} \right)^{2} +} \\ \left( {y_{i,j} - y_{{i - 1},j}} \right)^{2} \end{matrix}} - l_{v}} \right)}^{2}\mspace{14mu}\ldots} +}} \\ | & | & {{\frac{1}{2}{k_{h}\left( {\sqrt{\begin{matrix} {\left( {x_{i,j} - x_{i,{j + 1}}} \right)^{2} +} \\ \left( {y_{i,j} - y_{i,{j + 1}}} \right)^{2} \end{matrix}} - l_{h}} \right)}^{2}\mspace{14mu}\ldots} +} \\ | & | & {{\frac{1}{2}k_{t\; 1}\theta_{1}} + {\frac{1}{2}k_{t}{\theta_{2}.}}} \end{matrix}$

Procedure 1—Total Potential Energy Calculation

The deformation modeling component 325 can then evaluate the nonlinear optimization problem of determining the shape of that lattice that minimizes the total potential energy within the lattice. For example, the deformation modeling component 325 can seek to find an optimal state X* that minimizes the potential energy in the lattice E, subject to the constraint that the lattice nodes do not lie within the interior of the colliding object (e.g., the item that is being picked up using the suction device). More formally, the optimal state can be expressed using Equation 2 discussed above, subject to the constraint 0<|r_(i,j)|−|d_(i,j)| ∀i,j.

Additionally, in solving for the optimal state of the lattice, the deformation modeling component 325 can provide a nonlinear solving component with analytical gradients relating changes in both the objective function E and the node position constraint to changes in X. For example,

$\frac{\partial E}{\partial x_{i,j}}$ could be one element of the gradient matrix, and could describe the change in potential energy due to a change in the x-coordinate position of node i,j. Such gradients can be calculated using any suitable symbolic math tools, consistent with the functionality described herein.

In one embodiment, the deformation modeling component 325 can assume that the item being picked up using the suction end effector will remain relatively constant in shape despite the force exerted by the suction end effector. As such, the deformation modeling component 325 can model the contact between such an item and the suction end effector by using a static three-dimensional shape representing a portion of the item corresponding to the selected contact point. FIG. 6 illustrates a deformed three-dimensional shape of a suction cup device in contact with an item surface, according to one embodiment described herein. As shown, the diagram 600 illustrates such an example. As shown, the deformed three-dimensional mesh 610 corresponds to the shape of the spring lattice with a minimal potential energy value, while the fixed three-dimensional shape 620 corresponds to the shape of the item corresponding to the contact point. Generally, such an embodiment may be preferable when the surface of the item being picked up is relatively rigid and deforms very little (if at all) when under the force exerted by the suction device.

Other items, however, may deform in shape significantly when under the force of the suction device. For example, while an item within relatively thick cardboard packaging may deform very little when under the force exerted by the suction device, a malleable item within relatively thin plastic packaging may deform significantly when the suction device exerts a force on the surface of the item's packaging. In such a situation, the deformation modeling component 325 can generate a second spring lattice representing the surface of the item, as illustrated in FIG. 7, which is a flow diagram deformed three-dimensional shapes of a suction cup device in contact with a malleable item surface, according to one embodiment described herein. In such an embodiment, the deformation modeling component 325 can adjust a stiffness value for the springs within the lattice (e.g., with each spring having a respective stiffness value), based on physical attributes of the item. For example, a more malleable item could have relatively lower stiffness values, whereas a relatively rigid item could have greater stiffness value. The deformation modeling component 325 could then determine the shape of the spring lattice representing the shape of the item under force that minimizes the potential energy across all of the springs of the lattice. As shown in FIG. 7, the illustration 700 includes a first deformed three-dimensional shape representing the shape of the suction device 710 under the force exerted by the suction seal between the item and the suction device, and a second deformed three-dimensional shape representing the shape of the item under the same force.

Once the deformation modeling component 325 has generated the deformed three-dimension shape representing the suction device under the force (and potentially the deformed three-dimensional shape representing the item under the force (as shown in FIG. 7), the seal quality estimation component 330 can generate a seal quality metric that estimates the strength of the seal between the item and the suction cup device, based on the deformed three-dimensional shape of the suction cup device (i.e., the three-dimensional shape of the suction cup device under the force exerted by the suction seal between the suction cup device and the item) and the three-dimensional shape of the item (e.g., a fixed three-dimensional shape for a rigid item, a deformed three-dimensional shape representing the shape of the item under the force exerted by the suction cup seal, etc.).

In calculating the seal quality metric, the seal quality estimation component 330 can take into consideration a number of different factors. A non-exhaustive list of such factor could include, for example, the item's surface geometry, the item's pose, the item's inertia (e.g., while coming into contact with the suction cup device, while being carried by the suction cup device, etc.), as well as the suction cup's geometry and bulk modulus (e.g., a measure of how resistant to compressibility the material of the suction cup is). Additionally, the seal quality estimation component 330 could identify any leak pathways in the contact between the three-dimensional shapes of the suction cup and the item. The seal quality estimation component 330 could further take into account the suction pump's ability to generate static pressure (e.g., using a simple linear fluids model).

In one embodiment, the seal quality estimation component 330 can generate a model in which the suction cup device applies a force to the item via a spatial force. For example, this “suction force” can be represented as a vector that originates at a point on the item's surface that is closest to the suction cup's center. Moreover, such a vector can point to the suction cup's center. At each time step of the simulation, the seal quality estimation component 330 can update the direction and magnitude of the vector (i.e., the seal quality estimation component 330 can update the calculated measure of suction force). Of note, while the definition of the direction of the vector remains constant across the time steps of the simulation, the value of the vector can change, as the closest point on the item may change due to the item's movement over time.

Generally, the force's magnitude is proportional to any air leak pathways between the suction cup and the item surface. An example of such a magnitude is shown in FIG. 9, which is a graph illustrating a relationship between static pressure and leak pathway surface air for a seat between a suction device and an item, according to one embodiment described herein. As shown in the graph 900, the static pressure value is highest (e.g., equal to the static pressure that the vacuum pump is capable of exerting) when the leak pathway surface air is at 0, i.e., when no leak pathways exist. As the value of the leak pathway surface air increases, the static pressure of the seal decreases, until the static pressure value reaches 0. At this point, no vacuum seal exists between the item and the suction device, and the static pressure value remains 0 for any further increases in the leak pathway surface air.

In one embodiment, the seal quality estimation component 330 is configured to perform a ray casting operations to effectively project a two-dimensional suction area onto the item's surface. This area is shown in FIG. 8, which is an illustration of a simulation for calculating an estimated seal quality metric between a suction cup and an item, according to one embodiment described herein. As shown, the illustration 800 depicts a virtual representation of a suction device 810 and a virtual representation of an item 820. As shown, the seal quality estimation component 330 has projected a circular two-dimensional suction area 830 having a central point 840 onto the surface of the item 820. Based on whether each ray hits the item 820 and, for the rays that hit the item 820, the distance each ray travelled before intersecting with a respective point on the item 820, the seal quality estimation component 330 can numerically integrate to estimate the three-dimensional surface through which air can flow between the suction device 810 and the item 820.

In one embodiment, the seal quality estimation component 330 can use a piecewise linear model to relate the surface area to the static vacuum pressure developed between the suction device 810 and the item 820. In such an embodiment, if the seal quality estimation component 330 determines that the surface area is above a predefined threshold level of surface area, the seal quality estimation component 330 can determine that fluid impedance is negligible and no static pressure is developed. On the other hand, where the surface area is equal to zero (i.e., when the surface of the item 820 includes the entirety of the surface of the suction device 810), fluid pressure reaches a defined maximum value (e.g., equal or substantially equal to the maximum static pressure produced by the vacuum pump). For all values in between these extremes, the seal quality estimation component 330 can calculate the fluid pressure as a value that is linearly proportional to the surface area. As such, the seal quality estimation component 330 can express the magnitude of the force as the product of fluid pressure and the two-dimensional suction area 830.

FIG. 10 illustrates a workflow for processing an item within a fulfillment center environment, according to one embodiment described herein. As shown, the workflow 1000 begins at block 1010, where one or more light-emitting devices 230 are used to illuminate the item 1005 within the storage container 1007. For example, the robotic control optimization component 315 may instruct the image processing component 375 to estimate the item's 1005 surface geometry from these images, and the robotic control optimization component 315 may control level of illumination produces by the light emitting device(s) 230 to facilitate the capture of an optimal image(s) of the item 1005. Of course, in some circumstances, the robotic control optimization component 315 may turn the light-emitting devices 230 off (or otherwise cause the light-emitting devices 230 to emit no light), e.g., when the ambient lighting of the physical environment is already adequate for optimal image capture.

The one or more camera devices 220 then capture an image(s) of the item 1005 (block 1015), and transmit the capture image(s) to the image processing component 375 to determine the surface geometry of the item (block 1020). Upon determining the item's estimate pose, the determined surface geometry information is transmitted to the robotic control optimization component 315 (block 1025). Of note, while the surface geometry estimation is shown in the workflow 1000 as being performed by the image processing component 375, in other embodiments the robotic control optimization component 315 may perform the pose estimation analysis directly using the capture image(s). Returning to the depicted workflow 1000, the robotic control optimization component 315 retrieves a three-dimensional model corresponding to the item 1005 from an item profile data store (block 1030). For example, the robotic control optimization component 315 could query the item profile data store using at least a unique identifier corresponding to the item 1005.

FIG. 11 illustrates a workflow for generating an estimated seal quality metric for candidate contact points on an item within a fulfillment center, according to one embodiment described herein. As shown, the workflow 1100 depicts a plurality of candidate contact points 1105(1)-(N) on an exposed surface of the item 1005 within the storage container 1007. As discussed above, the robotic control optimization component 315 could determine, based on the item's 1005 pose, one or more exposed surfaces of the item 1005. Additionally, the robotic control optimization component 315 can take into account other objects surrounding the item 1005 when determining the exposed surfaces. For example, in the depicted embodiment, the robotic picking arm 210 may not have sufficient room to maneuver a suction end effector onto the side surfaces of the item 1005, due to the storage container 1007 surrounding the item 1005. As a result, in the depicted example, the robotic control optimization component 315 has selected the upwards-facing surface of the item 1005 as the only exposed surface and has selected a number of candidate contact points 1105(1)-(N) on the surface.

As shown, the robotic control component 315 receives the three-dimensional model from the item profile data store (block 1030) and the surface geometry information from the image processing component 375 (block 1025). The robotic control component 315 uses this information to determine the candidate contact points 1105(1)-(N) on the exposed surface of the item and transmits data identifying these candidate contact points to the deformation modeling component 325 (block 1110). The deformation modeling component 325 generates one or more three-dimensional shapes for the suction device, for each of the candidate contact points (block 1115). For example, as discussed above, the deformation modeling component 325 could generate a three-dimensional spring lattice corresponding to the suction device and could determine the three-dimensional shape as the shape of spring lattice where potential energy across all springs within the lattice is minimized. The seal quality estimation component 330 generates an estimated seal quality metric for each candidate contact point (block 1120).

FIG. 12 illustrates a workflow for controlling a robotic picking arm to retrieve an item by holding the item at a selected contact point, according to one embodiment described herein. As shown, the workflow 1200 illustrates the robotic control component 315 receiving the estimated seal quality metrics for the candidate contact points from the seal quality estimation component 330 (block 1120). The robotic control component 315 selects a candidate contact point having the greatest estimated seal quality metric and that satisfies one or more predefined criteria (block 1210). For example, the robotic control component 315 could identify a candidate contact point that has a seal quality metric that exceeds a predefined threshold level of seal quality and that is the greatest seal quality metric across all of the considered candidate contact points.

In a particular embodiment where none of the candidate contact points produced a seal quality metric that exceeds the predefined threshold level of seal quality, the robotic control component 315 could perform an alternate action to retrieve the item. For example, the robotic control component 315 could select additional candidate contact points and calculate estimated seal quality metrics for these additional contact points using the techniques described herein. As another example, where the robotic picking arm 210 is configured with multiple different types of end effectors, the robotic control component 315 could instruct the robotic arm controller 390 to control the movement of the robotic picking arm 210 to pick up the item using an alternate type of end effector (e.g., a robotic claw end effector). As yet another example, the robotic control component 315 could transmit an instruction to a control system for the fulfillment center, requesting to automatically reroute the item to a different area within the fulfillment center where the item can be processed.

Returning to the depicted embodiment, the robotic control component 315 determines that the selected candidate contact point having the greatest estimated seal quality does satisfy the predefined criteria, and the robotic control component 315 controls the robotic picking arm (e.g., by transmitting one or more instructions to the robotic arm controller 390) to retrieve the item 1005 at the selected contact point 1220 using the suction device (block 1215).

FIG. 13 is a flow diagram illustrating a method for determining an expected seal quality metric for holding an item at a candidate contact point using a suction device, according to one embodiment described herein. As shown, the method 1300 begins at block 1310, where the object capture system 220 captures one or more images of an item within a storage container to be retrieved using a robotic picking arm having a suction device. The object capture system 220 could then transmit the captured image(s) to the robotic control optimization component 315. The robotic control optimization component 315 retrieves a three-dimensional surface model of the item, based on a unique identifier corresponding to the item (block 1315). For example, the management module 110 could indicate to pick up an item having a particular unique item identifier, and the robotic control optimization component 315 could query a database containing three-dimensional item surface models (e.g., a point cloud) using the particular unique item identifier.

The robotic control optimization component 315 determines a plurality of candidate contact points for holding the item using the suction device of the robotic picking arm (block 1320). For example, the robotic control optimization component 315 could determine the item's surface geometry based on the captured one or more images of the item and the three-dimensional surface model for the item, and could select the candidate contact points from the surface geometry of the item. In doing so, the robotic control optimization component 315 can also consider objects around the item (e.g., a storage container in which the item is placed). That is, while a given surface of the item may be exposed in the sense that nothing is in direct contact with the surface, certain points on the given surface may still be unsuitable for contact with a suction device, as these points may be sufficiently close to a nearby object such that there is no path to maneuver the suction device to make optimal contact with these points.

The robotic control optimization component 315 then determines an expected seal quality metric for a first one of the candidate contact points, by processing the three-dimensional surface model of the item and physical properties of the suction device of the robotic picking arm as inputs (block 1325). In the depicted embodiment, as part of the robotic control optimization component 315 determining the expected seal quality metric, the deformation modeling component 325 models deformation and contact between the suction device and the first candidate contact point, using at least one three-dimensional spring-lattice to model deformation and contact between the suction device and the first candidate contact point on the item, such that potential energy across the three-dimensional spring-lattice is minimized (block 1330). Additionally, the seal quality estimation component 330 calculates the expected seal quality metric, using the three-dimensional spring-lattice and a fluids model relating fluid force and leak pathways (block 1335). The robotic control component 320 determines, based on the expected seal quality metric, whether to retrieve the item from the storage container by holding the item at the first candidate contact point using the suction device of the robotic picking arm (block 1340), and the method 1300 ends.

FIG. 14 is a flow diagram illustrating a method for controlling movement of a robotic picking arm to retrieve an item by holding the item at a candidate contact point, according to one embodiment described herein. As shown, the method 1400 begins at block 1410, where the robotic control optimization component 315 determines a first candidate contact point for holding a first item using the suction device of the robotic picking arm, based on a surface geometry of the first item. The seal quality estimation component 330 estimates a seal quality metric for the first candidate contact point, based on a predicted deformed three-dimensional shape of the suction device and a three-dimensional shape associated with the first item (block 1415). Upon determining that the estimated seal quality metric for the first candidate contact point satisfies one or more predefined criteria, the robotic control component 320 controls the movement of the robotic picking arm to retrieve the first item by holding the first item at the first candidate contact point (block 1420), and the method 1400 ends.

FIG. 15 is a flow diagram illustrating a method for controlling movement of a robotic picking arm to retrieve an item at a selected candidate contact point, according to one embodiment described herein. As shown, the method 1500 begins at block 1510, where the robotic control optimization component 315 determines a plurality of candidate contact points for holding a first item using a suction device of a robotic picking arm, based on an estimated surface geometry of the first item. The seal quality estimation component 330 calculates, for each of the plurality of candidate contact points, a respective seal quality metric, based on a predicted deformed three-dimensional shape of the suction device and a three-dimensional shape associated with the candidate contact point on the first item (block 1515). The robotic control component 320 selects one of the plurality of candidate contact points, based on the calculated seal quality metrics (block 1520). Additionally, the robotic control component 320 controls movement of the robotic picking arm to retrieve the first item by holding the first item at the selected candidate contact point (block 1525), and the method 1500 ends.

The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

In the preceding, reference is made to embodiments presented in this disclosure. However, the scope of the present disclosure is not limited to specific described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice contemplated embodiments. Furthermore, although embodiments disclosed herein may achieve advantages over other possible solutions or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the scope of the present disclosure. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the invention” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s).

Aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.”

The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the FIGS. illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the FIGS. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

Embodiments of the invention may be provided to end users through a cloud computing infrastructure. Cloud computing generally refers to the provision of scalable computing resources as a service over a network. More formally, cloud computing may be defined as a computing capability that provides an abstraction between the computing resource and its underlying technical architecture (e.g., servers, storage, networks), enabling convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction. Thus, cloud computing allows a user to access virtual computing resources (e.g., storage, data, applications, and even complete virtualized computing systems) in “the cloud,” without regard for the underlying physical systems (or locations of those systems) used to provide the computing resources.

Typically, cloud computing resources are provided to a user on a pay-per-use basis, where users are charged only for the computing resources actually used (e.g. an amount of storage space consumed by a user or a number of virtualized systems instantiated by the user). A user can access any of the resources that reside in the cloud at any time, and from anywhere across the Internet. In context of the present invention, the robotic control optimization component 315 could execute on a computing system in the cloud and could receive information specifying an item's pose within a fulfillment center. In such a case, the robotic control optimization component 315 could determine a candidate contact point on the item and could calculate an estimated seal quality metric corresponding to the candidate contact point, using a three-dimensional spring lattice to model deformation and contact between a suction device for a robotic picking arm within the fulfillment center and the candidate contact point of the item. The robotic control optimization component 315 could then transmit control instructions to a robotic picking arm within a fulfillment center, e.g., instructing the robotic picking arm to proceed with picking up the item by holding the item at the candidate contact point using the suction device. Doing so allows a user to access this information from any computing system attached to a network connected to the cloud (e.g., the Internet).

While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow. 

What is claimed is:
 1. A method, comprising: capturing one or more images of an item within a storage container to be retrieved using a robotic picking arm having a suction device; retrieving a n-dimensional surface model of the item, based on a unique identifier corresponding to the item; determining a plurality of candidate contact points for holding the item using the suction device of the robotic picking arm, based on the captured one or more images of the item and the n-dimensional surface model of the item; determining an expected seal quality metric for a first one of the candidate contact points, by processing the n-dimensional surface model of the item and physical properties of the suction device of the robotic picking arm as inputs, comprising: modelling deformation and contact between the suction device and the n-dimensional surface model at the first candidate contact point, using at least one n-dimensional spring-lattice to model deformation and contact between the suction device and the n-dimensional surface model at the first candidate contact point, such that potential energy across the n-dimensional spring-lattice is minimized; and calculating the expected seal quality metric, using the n-dimensional spring-lattice and a fluids model relating fluid force and leak pathways; and determining, based on the expected seal quality metric, whether to retrieve the item from the storage container by holding the item at the first candidate contact point using the suction device of the robotic picking arm.
 2. The method of claim 1, further comprising: upon determining to retrieve the item from the storage container by holding the item at the first candidate contact point using the suction device of the robotic picking arm, transmitting an instruction to control logic for the robotic picking arm, the instruction specifying at least location information identifying the first candidate contact point.
 3. The method of claim 1, further comprising: upon determining not to retrieve the item from the storage container by holding the item at the first candidate contact point using the suction device of the robotic picking arm: selecting a second one of the plurality of candidate contact points; determining a second expected seal quality metric for the second candidate contact point; and determining, based on the second expected seal quality metric, whether to retrieve the item from the storage container by holding the item at the second candidate contact point using the suction device of the robotic picking arm.
 4. The method of claim 3, wherein determining a second expected seal quality metric for the second candidate contact point further comprises: modelling deformation and contact between the suction device and the second candidate contact point, using at least one n-dimensional spring-lattice to model deformation and contact between the suction device and the second candidate contact point for the item, such that potential energy across the n-dimensional spring-lattice is minimized; and calculating the expected seal quality metric, using the n-dimensional spring-lattice for the second candidate contact point and the fluids model.
 5. The method of claim 1, further comprising: determining a pose of the item within the storage container, based on the captured one or more images of the item and the retrieved n-dimensional surface model for the item, wherein determining the plurality of candidate contact points for holding the item using the suction device of the robotic picking arm, is further based on the determined pose of the item within the storage container.
 6. The method of claim 5, wherein determining the plurality of candidate contact points for holding the item using the suction device of the robotic picking arm further comprises: retrieving an item profile, based on the unique identifier corresponding to the item, wherein the item profile specifies a set of candidate contact points for the item; and determining that the plurality of candidate contact points are available, based on the determined pose of the item within the storage container, wherein the plurality of candidate contact points is a subset of the set of candidate contact points for the item within the item profile.
 7. A system, comprising: a robotic picking arm having a suction device adapted for retrieving items and reporting the items to a determined location; one or more computer processors; and control logic for the robotic picking arm that, when executed by operation of the one or more computer processors, performs an operation, comprising: determining a first candidate contact point for holding a first item using the suction device of the robotic picking arm, based on a surface geometry of the first item; estimating a seal quality metric for the first candidate contact point, based on a predicted deformed n-dimensional shape of the suction device and a n-dimensional shape associated with the first item, comprising generating the predicted deformed n-dimensional shape of the suction device by modelling deformation and contact between the suction device and the n-dimensional shape associated with the first item at the first candidate contact point, using at least a first n-dimensional spring-lattice to model deformation and contact between the suction device and the n-dimensional shape associated with the first item at the first candidate contact point, such that potential energy across the first n-dimensional spring-lattice is minimized; and upon determining that the estimated seal quality metric for the first candidate contact point satisfies one or more predefined criteria, controlling movement of the robotic picking arm to retrieve the first item by holding the first item at the first candidate contact point.
 8. The system of claim 7, wherein a first predefined criteria of the one or more predefined criteria further comprises the estimated seal quality metric exceeding a predefined threshold level of seal quality.
 9. The system of claim 7, wherein estimating the seal quality metric for the first candidate contact point, based on the predicted deformed n-dimensional shape of the suction device and the n-dimensional shape associated with the first item, further comprises calculating the seal quality metric, using the first n-dimensional spring-lattice and a fluids model relating fluid force and leak pathways.
 10. The system of claim 9, wherein estimating the seal quality metric for the first candidate contact point, based on the predicted deformed n-dimensional shape of the suction device and the n-dimensional shape associated with the first item, further comprises: retrieving an item profile corresponding the first item and specifying data describing physical attributes of the first item; and generating a second predicted deformed n-dimensional shape for the first item, using at least a second n-dimensional spring-lattice to model deformation and contact between the suction device and the first candidate contact point of the first item, such that potential energy across the first n-dimensional spring-lattice is minimized, wherein calculating the seal quality metric is further based on the second predicted deformed n-dimensional shape for the first item.
 11. The system of claim 9, wherein estimating the seal quality metric for the first candidate contact point, based on the predicted deformed n-dimensional shape of the suction device and the n-dimensional shape associated with the first item, further comprises: determining a second n-dimensional shape associated with the first item, wherein calculating the seal quality metric is further based on the second n-dimensional shape.
 12. The system of claim 7, the operation further comprising: determining a second candidate contact point for holding a second item using the suction device of the robotic picking arm, based on a second surface geometry of the second item; estimating a second seal quality metric for the second candidate contact point, based on a predicted deformed n-dimensional shape of the suction device and a n-dimensional shape associated with the second item; and upon determining that the second seal quality metric for the second candidate contact point does not satisfy the one or more predefined criteria: determining a third candidate contact point for holding the second item using the suction device of the robotic picking arm, based on the second surface geometry of the second item estimating a third seal quality metric for the third candidate contact point, based on a third deformed n-dimensional shape of the suction device and a third n-dimensional shape associated with the second item; and upon determining that the third seal quality metric for the second candidate contact point does satisfies the one or more predefined criteria, controlling movement of the robotic picking arm to retrieve the second item by holding the second item at the third candidate contact point.
 13. The system of claim 7, the operation further comprising: capturing one or more images of first item; determining a unique identifier corresponding to the first item within a product catalog for a fulfillment center; retrieving a n-dimensional model of the first item, using the unique identifier; and determining the surface geometry of the first item, based on at least one of the captured one or more images of the first item and the retrieved n-dimensional model of the first item.
 14. A non-transitory computer-readable medium containing computer program code that, when executed by operation of one or more computer processors, performs an operation comprising: determining a plurality of candidate contact points for holding a first item using a suction device of a robotic picking arm, based on an estimated surface geometry of the first item; calculating, for each of the plurality of candidate contact points, a respective seal quality metric, based on a predicted deformed n-dimensional shape of the suction device and a n-dimensional shape associated with the candidate contact point on the first item, comprising: modelling deformation and contact between the suction device and the respective candidate contact point, using at least one n-dimensional spring-lattice to model deformation and contact between the suction device and the respective candidate contact point on the first item; and calculating the respective seal quality metric, using the n-dimensional spring-lattice and a fluids model; selecting one of the plurality of candidate contact points, based on the calculated seal quality metrics; and controlling movement of the robotic picking arm to retrieve the first item by holding the first item at the selected candidate contact point.
 15. The non-transitory computer-readable medium of claim 14, wherein the operation further comprises: capturing one or more images of the first item, using one or more camera devices; retrieving a n-dimensional model of the first item, using a unique identifier corresponding to the first item; and estimating a pose of the first item, based on the captured one or more images of the first item, the retrieved n-dimensional model of the first item, and positional information associated with the one or more camera devices.
 16. The non-transitory computer-readable medium of claim 15, wherein the estimated surface geometry of the first item is based on the estimated pose of the first item.
 17. The non-transitory computer-readable medium of claim 14, wherein selecting one of the plurality of candidate contact points, based on the calculated seal quality metrics, further comprises: determining at least one of the plurality of candidate contact points that satisfies one or more predefined criteria; and selecting an optimal candidate contact point, from the determined at least one candidate contact point.
 18. The non-transitory computer-readable medium of claim 14, wherein calculating, for each of the plurality of candidate contact points, the respective seal quality metric, further comprises: iteratively refining a n-dimensional shape of a first one of the at least one n-dimensional spring-lattice to minimize potential energy across the first n-dimensional spring-lattice, wherein a resulting n-dimensional shape of the first n-dimensional spring-lattice represents the n-dimensional shape of the suction device when suction is applied to the respective candidate contact point of the first item.
 19. The non-transitory computer-readable medium of claim 18, wherein calculating, for each of the plurality of candidate contact points, the respective seal quality metric, further comprises: iteratively refining a second n-dimensional shape of a second one of the at least one n-dimensional spring-lattice to minimize potential energy across the second n-dimensional spring-lattice, wherein a resulting n-dimensional shape of the second n-dimensional spring-lattice represents the n-dimensional shape for the respective candidate contact point on the first item when suction is applied using the suction device, wherein calculating the respective seal quality metric is further based on the n-dimensional shape for the respective candidate contact point on the first item when suction is applied using the suction device.
 20. The non-transitory computer-readable medium of claim 18, wherein calculating the respective seal quality metric is further based on an n-dimensional shape for the respective candidate contact point on the first item when no suction is applied.
 21. The non-transitory computer-readable medium of claim 14, wherein: the operation further comprises retrieving an item profile using a unique identifier corresponding to the first item, the item profile specifying a set of candidate contact points for the first item; and the plurality of candidate contact points are a subset of the set of candidate contact points for the first item within the item profile. 